﻿using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using System.Collections.Generic;
using Model;

namespace Control
{
    /// <summary>
    /// RioCMS CRUD para Paginas
    /// </summary>
    [WebService(
         Name = "PaginasServices",
         Description = "RioCMS CRUD Paginas",
         Namespace = "RioCMSControl"
     )]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [ToolboxItem(false)]
    [System.Web.Script.Services.ScriptService]
    public class PaginasServices : System.Web.Services.WebService
    {
        private MGPaginas mg = new MGPaginas();
        [WebMethod(Description = "Retorna uma lista com todas as Páginas")]
        public List<Pagina> listar()
        {
            if (!this.mg.autenticar())
            {
                return null;
            }
            else
            {
                return this.mg.listar();
            }
        }
		[WebMethod(Description = "Retorna uma Página")]
		public Pagina get(uint id) {
			if (!this.mg.autenticar()) {
				return null;
			} else {
				return this.mg.get(id);
			}
		}
		[WebMethod(Description = "Retorna uma Página")]
		public Pagina copiar(uint id) {
			if (!this.mg.autenticar()) {
				return null;
			} else {
				return this.mg.duplicar(id);
			}
		}
        [WebMethod(Description = "Adicona uma nova Página")]
        public bool adicionar(String nome, String descricao, String palavrasChave, String autor, DateTime data, uint template)
        {
              
            if (!this.mg.autenticar())
            {
                return false;
            }
            else
            {
                return this.mg.adicionar(nome, descricao, palavrasChave, autor, data, template);
            }
        }

		[WebMethod(Description = "Adicona uma nova Página")]
		public bool editar(uint id, String nome, String descricao, String palavrasChave, String autor, DateTime data, uint template) {
			if (!this.mg.autenticar()) {
				return false;
			} else {
				return this.mg.atualizar(id, nome, descricao, palavrasChave, autor, data, template);
			}
		}

        [WebMethod(Description = "Remove uma página")]
        public bool remover(uint id)
        {
            if (!this.mg.autenticar())
            {
                return false;
            }
            else
            {
                return this.mg.remover(id);
            }
        }

    }
}
